package m.system.handler;

import com.alibaba.fastjson.JSONObject;

import java.lang.annotation.*;

@Retention(RetentionPolicy.RUNTIME) // 注解会在class字节码文件中存在，在运行时可以通过反射获取到  
@Target({ElementType.METHOD})//定义注解的作用目标**作用范围字段、枚举的常量/方法  
@Documented//说明该注解将被包含在javadoc中 
public @interface HandlerMethodMeta {
	/**
	 * 接口数据处理事件名称
	 * 不能重复，否则后面覆盖前面
	 */
	String name();

	/**
	 * 优先级别，级别小排在前面
	 */
	int level() default 5;

	/**
	 * 类型 JSONObject为公共类型
	 */
	Class<?> type() default JSONObject.class;
	/**
	 * 接口数据处理事件描述
	 * 方法接受一个type类型的参数，返回一个type类型的，允许异常抛出
	 */
	String description();

	/**
	 * 登录信息，true时，方法需要第两个参数(AdminLogin)，
	 */
	boolean adminLogin() default false;
}
